package com.encryption.controls.tip
{
	import flash.display.DisplayObject;
	
	import mx.core.FlexGlobals;
	import mx.managers.PopUpManager;
	import mx.rpc.events.FaultEvent;

	/**
	 * 显示提示管理类，其完成的主要功能是，管理系统运行过程中的运行提示、错误提示的显示
	 * @author jill
	 * 
	 */
	public class TipShowManager
	{
		private static var errorTip:ErrorTip;
		private static var messageTip:ErrorTip;
		private static var operationTip:UserOperationTip;
		public function TipShowManager()
		{
		}
		
		/**
		 * 在系统平台的中间弹出错误提示框
		 * 
		 * @param message
		 */
		public static function showErrorTip(message:String): void
		{
			if(errorTip== null){
				errorTip = new ErrorTip();
			}
			if(errorTip.isPopUp){
				var curMessage:String = errorTip.message;
				var togetherMessage:String = curMessage + "\n" + message;
				errorTip.message= togetherMessage;
			}else{
				errorTip.message = message;
				PopUpManager.addPopUp(errorTip,FlexGlobals.topLevelApplication as DisplayObject);
				PopUpManager.centerPopUp(errorTip);
			}
		}
		
		/**
		 * 增加RPC服务错误
		 * @param message 错误描述
		 * @param faultEvent RPC错误对象
		 * 
		 */
		public static function addFaultError(message:String, faultEvent:FaultEvent):void
		{
			var faultMessage:String = "";
			if(faultEvent != null)
				faultMessage = faultEvent.fault.toString();
			showErrorTip(message);
		}
		
		/**
		 * 系统平台运行过程中，当用户出现不合理的操作时，在操作的界面右边显示提示
		 * 如果无法定位到提示显示的位置，使用showMessageTip()方法
		 * @param message
		 * @param displayObject
		 */
		public static function showOperationTip(message:String, displayObject:DisplayObject): void
		{
			if(operationTip == null)
				operationTip = new UserOperationTip();
			operationTip.text = message;
			PopUpManager.addPopUp(operationTip, FlexGlobals.topLevelApplication as DisplayObject);
			operationTip.updateLocation(displayObject);

		}
		
		/**
		 * 系统平台运行过程中，当用户出现不合理的操作时，又无法定位到显示为的位置时
		 * 如果能定位到提示显示的位置，使用showOperationTip()方法
		 * @param message
		 */
		public static function showMessageTip(message:String):void
		{
			if(messageTip== null){
				messageTip = new ErrorTip();
				PopUpManager.addPopUp(messageTip,FlexGlobals.topLevelApplication as DisplayObject);
				PopUpManager.centerPopUp(messageTip);
			}
			messageTip.message = message;
			PopUpManager.addPopUp(messageTip,FlexGlobals.topLevelApplication as DisplayObject);
			PopUpManager.centerPopUp(messageTip);
		}
	}
}